package eval.results;

//import eval.deploy.DeploySet;
import eval.engine.IPlacement;

/**
 * Interface for the result manager
 * 
 * @author Nicolo' M. Calcavecchia <calcavecchia@elet.polimi.it>
 * */
public interface IResultManager {

	/**
	 * Add the given placement to the list of placements to be shown in the
	 * results
	 * 
	 * @param lastPlacement
	 * @param tick
	 * */
	void addPlacementAtTick(IPlacement placement, int tick);

	/**
	 * Total experiment time
	 * */
	void addExperimentTotalTime(double experimentTime);
	
	/**
	 * Sets the execution times for both the engine and the tick itself
	 * 
	 * @param tickStartTime
	 *            time in milliseconds when the tick started
	 * @param engineTimeInSec
	 *            total time employed by the engine to solve the placement
	 *            problem
	 * @param tick
	 *            the tick at which measures are reported
	 * 
	 * */
	void setExecutionTimesAtTick(long tickStartTime, double engineTimeInSec,int tick);
	


	/**
	 * Returns the result object containing all the results generated by the
	 * experiment
	 * */
	IResultsData getResultsData();

	void performSaintyCheck(String resFileName);
	
	
	

	

}
